|
In knowledge representation, object-oriented programming and design (see object oriented program architecture), is-a (is_a or is a) is a subsumption〔http://en.wiktionary.org/wiki/subsume#English〕〔See Liskov substitution principle.〕 relationship between abstractions (e.g. types, classes), where one class ''A'' is a subclass of another class ''B'' (and so ''B'' is a superclass of ''A''). In other words, type A is a subtype of type B when A’s specification implies B’s specification. That is, any object (or class) that satisfies A’s specification also satisfies B’s specification, because B’s specification is weaker.〔(【引用サイトリンク】url=http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-170-laboratory-in-software-engineering-fall-2005/lecture-notes/lec14.pdf )〕 The ''is-a'' relationship is to be contrasted with the ''has-a'' (''has_a'' or ''has a'') relationship between types (classes). It may also be contrasted with the ''instance-of'' relationship between objects (instances) and types (classes): see "type-token distinction" and "type-token relations."〔Type–token relations〕 When designing a model (e.g., a computer program) of the real-world relationship between an object and its subordinate, a common error is confusing the relations ''has-a'' and ''is-a''. To summarize the relations, we have * hypernym-hyponym (supertype-subtype) relations between types (classes) defining a taxonomic hierarchy, where * * for a subsumption relation: a hyponym (subtype, subclass) has a ''type-of'' (''is-a'') relationship with its hypernym (supertype, superclass); * holonym-meronym (whole/entity/container-part/constituent/member) relations between types (classes) defining a possessive hierarchy, where * * for an aggregation (i.e. without ownership) relation: * * * a holonym (whole) has a ''has-a'' relationship with its meronym (part), * * for a composition (i.e. with ownership) relation: * * * a meronym (constituent) has a ''part-of'' relationship with its holonym (entity), * * for a containment〔See also Containment (computer programming).〕 relation: * * * a meronym (member) has a ''member-of'' relationship with its holonym (container); * concept-object (type-token) relations between types (classes) and objects (instances), where * * a token (object) has an ''instance-of'' relationship with its type (class). ==Examples of subtyping== Subtyping enables a given type to be substituted for another type or abstraction. Subtyping is said to establish an is-a relationship between the subtype and some existing abstraction, either implicitly or explicitly, depending on language support. The relationship can be expressed explicitly via inheritance in languages that support inheritance as a subtyping mechanism. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Is-a」の詳細全文を読む スポンサード リンク
|